--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sbapp/pmqtt/subscribeoptions.py 1.9.2 (761c4329) Text, 4.85 KB
T8b949e"""
*******************************************************************
Copyright (c) 2017, 2019 IBM Corp.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v2.0
and Eclipse Distribution License v1.0 which accompany this distribution.
The Eclipse Public License is available at
http://www.eclipse.org/legal/epl-v20.html
and the Eclipse Distribution License is available at
http://www.eclipse.org/org/documents/edl-v10.php.
Contributors:
Ian Craggs - initial implementation and/or documentation
*******************************************************************
"""
Tff7b72class T56d364MQTTExceptionTb4b4b4(Tf85149ExceptionTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72class T56d364SubscribeOptionsTb4b4b4:
T8b949e"""The MQTT v5.0 subscribe options class.
The options are:
qos: As in MQTT v3.1.1.
noLocal: True or False. If set to True, the subscriber will not receive its own publications.
retainAsPublished: True or False. If set to True, the retain flag on received publications will be as set
by the publisher.
retainHandling: RETAIN_SEND_ON_SUBSCRIBE, RETAIN_SEND_IF_NEW_SUB or RETAIN_DO_NOT_SEND
Controls when the broker should send retained messages:
- RETAIN_SEND_ON_SUBSCRIBE: on any successful subscribe request
- RETAIN_SEND_IF_NEW_SUB: only if the subscribe request is new
- RETAIN_DO_NOT_SEND: never send retained messages
"""
T8b949e# retain handling options
Te6edf3RETAIN_SEND_ON_SUBSCRIBETb4b4b4, Te6edf3RETAIN_SEND_IF_NEW_SUBTb4b4b4, Te6edf3RETAIN_DO_NOT_SEND Tff7b72= Tffa657rangeTb4b4b4(
T79c0ff0Tb4b4b4, T79c0ff3Tb4b4b4)
Tff7b72def Tff7b72__init__Tb4b4b4(
Tff7b72selfTb4b4b4,
Te6edf3qosTb4b4b4: Tffa657int Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3noLocalTb4b4b4: Tffa657bool Tff7b72= Tff7b72FalseTb4b4b4,
Te6edf3retainAsPublishedTb4b4b4: Tffa657bool Tff7b72= Tff7b72FalseTb4b4b4,
Te6edf3retainHandlingTb4b4b4: Tffa657int Tff7b72= Te6edf3RETAIN_SEND_ON_SUBSCRIBETb4b4b4,
Tb4b4b4)Tb4b4b4:
T8b949e"""
qos: 0, 1 or 2. 0 is the default.
noLocal: True or False. False is the default and corresponds to MQTT v3.1.1 behavior.
retainAsPublished: True or False. False is the default and corresponds to MQTT v3.1.1 behavior.
retainHandling: RETAIN_SEND_ON_SUBSCRIBE, RETAIN_SEND_IF_NEW_SUB or RETAIN_DO_NOT_SEND
RETAIN_SEND_ON_SUBSCRIBE is the default and corresponds to MQTT v3.1.1 behavior.
"""
Tffa657objectTff7b72.Td2a8ff__setattr__Tb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ffnamesTa5d6ff"Tb4b4b4,
Tb4b4b4[Ta5d6ff"Ta5d6ffQoSTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoLocalTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffretainAsPublishedTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffretainHandlingTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffQoS Tff7b72= Te6edf3qos T8b949e# bits 0,1
Tff7b72selfTff7b72.Td2a8ffnoLocal Tff7b72= Te6edf3noLocal T8b949e# bit 2
Tff7b72selfTff7b72.Td2a8ffretainAsPublished Tff7b72= Te6edf3retainAsPublished T8b949e# bit 3
Tff7b72selfTff7b72.Td2a8ffretainHandling Tff7b72= Te6edf3retainHandling T8b949e# bits 4 and 5: 0, 1 or 2
Tff7b72if Tff7b72selfTff7b72.Td2a8ffretainHandling Tff7b72not Tff7b72in Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149AssertionErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffRetain handling should be 0, 1 or 2, not Tffd700{Tff7b72selfTff7b72.Td2a8ffretainHandlingTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffQoS Tff7b72not Tff7b72in Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149AssertionErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffQoS should be 0, 1 or 2, not Tffd700{Tff7b72selfTff7b72.Td2a8ffQoSTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72def Tff7b72__setattr__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3valueTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3name Tff7b72not Tff7b72in Tff7b72selfTff7b72.Td2a8ffnamesTb4b4b4:
Tff7b72raise Te6edf3MQTTExceptionTb4b4b4(
Ta5d6fffTa5d6ff"Tffd700{Te6edf3nameTffd700}Ta5d6ff Attribute name must be one of Tffd700{Tff7b72selfTff7b72.Td2a8ffnamesTffd700}Ta5d6ff"Tb4b4b4)
Tffa657objectTff7b72.Td2a8ff__setattr__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3valueTb4b4b4)
Tff7b72def Td2a8ffpackTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffretainHandling Tff7b72not Tff7b72in Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149AssertionErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffRetain handling should be 0, 1 or 2, not Tffd700{Tff7b72selfTff7b72.Td2a8ffretainHandlingTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffQoS Tff7b72not Tff7b72in Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149AssertionErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffQoS should be 0, 1 or 2, not Tffd700{Tff7b72selfTff7b72.Td2a8ffQoSTffd700}Ta5d6ff"Tb4b4b4)
Te6edf3noLocal Tff7b72= T79c0ff1 Tff7b72if Tff7b72selfTff7b72.Td2a8ffnoLocal Tff7b72else T79c0ff0
Te6edf3retainAsPublished Tff7b72= T79c0ff1 Tff7b72if Tff7b72selfTff7b72.Td2a8ffretainAsPublished Tff7b72else T79c0ff0
Te6edf3data Tff7b72= Tb4b4b4[Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffretainHandling Tff7b72<< T79c0ff4Tb4b4b4) Tff7b72| Tb4b4b4(Te6edf3retainAsPublished Tff7b72<< T79c0ff3Tb4b4b4) Tff7b72|
Tb4b4b4(Te6edf3noLocal Tff7b72<< T79c0ff2Tb4b4b4) Tff7b72| Tff7b72selfTff7b72.Td2a8ffQoSTb4b4b4]
Tff7b72return Tffa657bytesTb4b4b4(Te6edf3dataTb4b4b4)
Tff7b72def Td2a8ffunpackTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3bufferTb4b4b4)Tb4b4b4:
Te6edf3b0 Tff7b72= Te6edf3bufferTb4b4b4[T79c0ff0Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffretainHandling Tff7b72= Tb4b4b4(Tb4b4b4(Te6edf3b0 Tff7b72>> T79c0ff4Tb4b4b4) Tff7b72& T79c0ff0x03Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffretainAsPublished Tff7b72= Tff7b72True Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3b0 Tff7b72>> T79c0ff3Tb4b4b4) Tff7b72& T79c0ff0x01Tb4b4b4) Tff7b72== T79c0ff1 Tff7b72else Tff7b72False
Tff7b72selfTff7b72.Td2a8ffnoLocal Tff7b72= Tff7b72True Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3b0 Tff7b72>> T79c0ff2Tb4b4b4) Tff7b72& T79c0ff0x01Tb4b4b4) Tff7b72== T79c0ff1 Tff7b72else Tff7b72False
Tff7b72selfTff7b72.Td2a8ffQoS Tff7b72= Tb4b4b4(Te6edf3b0 Tff7b72& T79c0ff0x03Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffretainHandling Tff7b72not Tff7b72in Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149AssertionErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffRetain handling should be 0, 1 or 2, not Tffd700{Tff7b72selfTff7b72.Td2a8ffretainHandlingTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffQoS Tff7b72not Tff7b72in Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149AssertionErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffQoS should be 0, 1 or 2, not Tffd700{Tff7b72selfTff7b72.Td2a8ffQoSTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72return T79c0ff1
Tff7b72def Tff7b72__repr__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657strTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72def Tff7b72__str__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ff{Ta5d6ffQoS=Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffQoSTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff, noLocal=Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffnoLocalTb4b4b4) Tff7b72+\
Ta5d6ff"Ta5d6ff, retainAsPublished=Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffretainAsPublishedTb4b4b4) Tff7b72+\
Ta5d6ff"Ta5d6ff, retainHandling=Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffretainHandlingTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff}Ta5d6ff"
Tff7b72def Td2a8ffjsonTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3data Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffQoSTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffQoSTb4b4b4,
Ta5d6ff"Ta5d6ffnoLocalTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffnoLocalTb4b4b4,
Ta5d6ff"Ta5d6ffretainAsPublishedTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffretainAsPublishedTb4b4b4,
Ta5d6ff"Ta5d6ffretainHandlingTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffretainHandlingTb4b4b4,
Tb4b4b4}
Tff7b72return Te6edf3data
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────